import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex)

const store = new Vuex.Store({

    state:{
        name:'test'
    }
    ,getters:{
        //取值时对值进行操作,第一个参数默认是state
        getName(state){
            return 'hello '+state.name
        }
    }
    ,mutations:{
        //同步更改值
        setName(state,payload){
            state.name = payload.name;
        }
    }
    ,actions:{
        //异步更改值,区别第一个参数不是state，而是content，值为复制的一分store
        setNameAction(content,payload){
            return new Promise(resolve => {
                setTimeout(()=>{
                    content.commit('setName',{name:payload.name})
                    resolve()
                },2000)
            })
        }
    }

})

export default store